<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Disjoint Stable Set Problems - Formulations by Representatives and Combinatorial Solvers: vEBTree&lt; T &gt;::Iterator Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Disjoint Stable Set Problems - Formulations by Representatives and Combinatorial Solvers
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Macros</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="classvEBTree.html">vEBTree</a></li><li class="navelem"><a class="el" href="classvEBTree_1_1Iterator.html">Iterator</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<div class="title">vEBTree&lt; T &gt;::Iterator Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A generic iterator on the set of elements.  
 <a href="classvEBTree_1_1Iterator.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="vEBTree_8h_source.html">vEBTree.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for vEBTree&lt; T &gt;::Iterator:</div>
<div class="dyncontent">
<div class="center"><img src="classvEBTree_1_1Iterator__inherit__graph.png" border="0" usemap="#vEBTree_3_01T_01_4_1_1Iterator_inherit__map" alt="Inheritance graph"/></div>
<map name="vEBTree_3_01T_01_4_1_1Iterator_inherit__map" id="vEBTree_3_01T_01_4_1_1Iterator_inherit__map">
<area shape="rect" id="node2" href="classDirectlyAddressedSet_1_1Iterator.html" title="A general iterator to scan a DirectlyAddressedSet." alt="" coords="8,6,157,53"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for vEBTree&lt; T &gt;::Iterator:</div>
<div class="dyncontent">
<div class="center"><img src="classvEBTree_1_1Iterator__coll__graph.png" border="0" usemap="#vEBTree_3_01T_01_4_1_1Iterator_coll__map" alt="Collaboration graph"/></div>
<map name="vEBTree_3_01T_01_4_1_1Iterator_coll__map" id="vEBTree_3_01T_01_4_1_1Iterator_coll__map">
<area shape="rect" id="node2" href="classDirectlyAddressedSet_1_1Iterator.html" title="A general iterator to scan a DirectlyAddressedSet." alt="" coords="8,6,157,53"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classvEBTree_1_1Iterator-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a6a0a5ee2f938be39b3d7a534dc8358f1"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#a6a0a5ee2f938be39b3d7a534dc8358f1">~Iterator</a> ()</td></tr>
<tr class="memdesc:a6a0a5ee2f938be39b3d7a534dc8358f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The destructor.  <a href="#a6a0a5ee2f938be39b3d7a534dc8358f1"></a><br/></td></tr>
<tr class="memitem:a3f18d015f489b36d8403af3a46311efb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#a3f18d015f489b36d8403af3a46311efb">start</a> ()</td></tr>
<tr class="memdesc:a3f18d015f489b36d8403af3a46311efb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start enumeration.  <a href="#a3f18d015f489b36d8403af3a46311efb"></a><br/></td></tr>
<tr class="memitem:a26d3031d2130e28684e6ab014700ad8e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#a26d3031d2130e28684e6ab014700ad8e">restart</a> ()</td></tr>
<tr class="memdesc:a26d3031d2130e28684e6ab014700ad8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restart enumeration.  <a href="#a26d3031d2130e28684e6ab014700ad8e"></a><br/></td></tr>
<tr class="memitem:a347eaec25fcf68d0e0110d249d88f724"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#a347eaec25fcf68d0e0110d249d88f724">restartFrom</a> (long i)</td></tr>
<tr class="memdesc:a347eaec25fcf68d0e0110d249d88f724"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restart enumeration from a specified element.  <a href="#a347eaec25fcf68d0e0110d249d88f724"></a><br/></td></tr>
<tr class="memitem:a1f02546ac829b1d49e60d53f15be2b8c"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#a1f02546ac829b1d49e60d53f15be2b8c">hasNext</a> ()</td></tr>
<tr class="memdesc:a1f02546ac829b1d49e60d53f15be2b8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if still there is a element in the set not enumerated yet.  <a href="#a1f02546ac829b1d49e60d53f15be2b8c"></a><br/></td></tr>
<tr class="memitem:aa9fac9ed87497617aa459ac4797343da"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#aa9fac9ed87497617aa459ac4797343da">hasPrevious</a> ()</td></tr>
<tr class="memdesc:aa9fac9ed87497617aa459ac4797343da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the set has a previous key in the current range.  <a href="#aa9fac9ed87497617aa459ac4797343da"></a><br/></td></tr>
<tr class="memitem:ad99580f47f78ad58fd84ab5c27f8d851"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#ad99580f47f78ad58fd84ab5c27f8d851">next</a> ()</td></tr>
<tr class="memdesc:ad99580f47f78ad58fd84ab5c27f8d851"><td class="mdescLeft">&#160;</td><td class="mdescRight">Index of the next element in the set according to the current enumeration.  <a href="#ad99580f47f78ad58fd84ab5c27f8d851"></a><br/></td></tr>
<tr class="memitem:a72c114ea6d07877ea883d8d7a931fa78"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#a72c114ea6d07877ea883d8d7a931fa78">previous</a> ()</td></tr>
<tr class="memdesc:a72c114ea6d07877ea883d8d7a931fa78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumerates the previous key in the current range.  <a href="#a72c114ea6d07877ea883d8d7a931fa78"></a><br/></td></tr>
<tr class="memitem:a8ef98f7b9876bb115462163661b29df1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#a8ef98f7b9876bb115462163661b29df1">flip</a> ()</td></tr>
<tr class="inherit_header pub_methods_classDirectlyAddressedSet_1_1Iterator"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classDirectlyAddressedSet_1_1Iterator')"><img src="closed.png" alt="-"/>&nbsp;Public Member Functions inherited from <a class="el" href="classDirectlyAddressedSet_1_1Iterator.html">DirectlyAddressedSet::Iterator</a></td></tr>
<tr class="memitem:aa503a42671cdd37eaae67916fdbc0372 inherit pub_methods_classDirectlyAddressedSet_1_1Iterator"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet_1_1Iterator.html#aa503a42671cdd37eaae67916fdbc0372">restartTo</a> (long i)=0</td></tr>
<tr class="memdesc:aa503a42671cdd37eaae67916fdbc0372 inherit pub_methods_classDirectlyAddressedSet_1_1Iterator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restarts the enumeration to a specified value.  <a href="#aa503a42671cdd37eaae67916fdbc0372"></a><br/></td></tr>
<tr class="memitem:a27d836b59e0d243212f242d840feffa6 inherit pub_methods_classDirectlyAddressedSet_1_1Iterator"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet_1_1Iterator.html#a27d836b59e0d243212f242d840feffa6">restartRange</a> (long from, long to)=0</td></tr>
<tr class="memdesc:a27d836b59e0d243212f242d840feffa6 inherit pub_methods_classDirectlyAddressedSet_1_1Iterator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restarts the enumeration for a specified range.  <a href="#a27d836b59e0d243212f242d840feffa6"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a4d9ead062206cac32596b6aeb493a018"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#a4d9ead062206cac32596b6aeb493a018">Iterator</a> (<a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt; *<a class="el" href="classvEBTree_1_1Iterator.html#ac8d334fe2119feb85d17472c8e2cfff5">t</a>)</td></tr>
<tr class="memdesc:a4d9ead062206cac32596b6aeb493a018"><td class="mdescLeft">&#160;</td><td class="mdescRight">A constructor for a <a class="el" href="classvEBTree_1_1Iterator.html" title="A generic iterator on the set of elements.">Iterator</a> over a specified <a class="el" href="classvEBTree.html" title="An implementation of DirectlyAddressedSet using a static van Emde Boas tree as data structure...">vEBTree</a>.  <a href="#a4d9ead062206cac32596b6aeb493a018"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:aa3e25b2b1eeb690a7a5611141dddc732"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#aa3e25b2b1eeb690a7a5611141dddc732">ht</a></td></tr>
<tr class="memdesc:aa3e25b2b1eeb690a7a5611141dddc732"><td class="mdescLeft">&#160;</td><td class="mdescRight">a copy of the target instance of vEBTree&lt;T&gt;::height  <a href="#aa3e25b2b1eeb690a7a5611141dddc732"></a><br/></td></tr>
<tr class="memitem:ac8d334fe2119feb85d17472c8e2cfff5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#ac8d334fe2119feb85d17472c8e2cfff5">t</a></td></tr>
<tr class="memdesc:ac8d334fe2119feb85d17472c8e2cfff5"><td class="mdescLeft">&#160;</td><td class="mdescRight">the enclosing vEBTree&lt;T&gt;, which gives access to <a class="el" href="classvEBTree.html#a351f1100d69f7fd48d6dc906c5c8c46b" title="The node in the index i of the leaf level of the tree.">vEBTree&lt;T&gt;::treeNode</a> method  <a href="#ac8d334fe2119feb85d17472c8e2cfff5"></a><br/></td></tr>
<tr class="memitem:af89f6729496615c735569c943cfc4568"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#af89f6729496615c735569c943cfc4568">cursor</a></td></tr>
<tr class="memitem:adae6c9439a9fa44660059425f3c282b0"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#adae6c9439a9fa44660059425f3c282b0">idx</a></td></tr>
<tr class="memdesc:adae6c9439a9fa44660059425f3c282b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">index of the current node in the last level  <a href="#adae6c9439a9fa44660059425f3c282b0"></a><br/></td></tr>
<tr class="memitem:a1c7758ec46a3f2a8f052df13c82bc905"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#a1c7758ec46a3f2a8f052df13c82bc905">word_size</a></td></tr>
<tr class="memdesc:a1c7758ec46a3f2a8f052df13c82bc905"><td class="mdescLeft">&#160;</td><td class="mdescRight">the size in bits of a word  <a href="#a1c7758ec46a3f2a8f052df13c82bc905"></a><br/></td></tr>
<tr class="memitem:aef7b31e0f9a5867a02ca141c9b7c5a8a"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#aef7b31e0f9a5867a02ca141c9b7c5a8a">size</a></td></tr>
<tr class="memdesc:aef7b31e0f9a5867a02ca141c9b7c5a8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">the size of the <a class="el" href="classvEBTree.html" title="An implementation of DirectlyAddressedSet using a static van Emde Boas tree as data structure...">vEBTree</a> that is being enumerate, its a simple copy of the value t-&gt;<a class="el" href="classvEBTree_1_1Iterator.html#aef7b31e0f9a5867a02ca141c9b7c5a8a" title="the size of the vEBTree that is being enumerate, its a simple copy of the value t-&gt;size()">size()</a>  <a href="#aef7b31e0f9a5867a02ca141c9b7c5a8a"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a8219f22e091c9743e43e210940a8490d"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvEBTree_1_1Iterator.html#a8219f22e091c9743e43e210940a8490d">vEBTree</a></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T&gt;<br/>
class vEBTree&lt; T &gt;::Iterator</h3>

<p>A generic iterator on the set of elements. </p>
<p>A filtered iterator on the set of elements.</p>
<p>The elements are enumerated in an increasing order.</p>
<p>An object of this class keeps the state of an enumeration. This means that various enumerations can be performed simultaneously provided that each of them is associated with a different iterator.</p>
<p>The path from the root of the tree until last element enumerated is composed by nodes of the <a class="el" href="classvEBTree.html" title="An implementation of DirectlyAddressedSet using a static van Emde Boas tree as data structure...">vEBTree</a>. A binary search in this path using min and max information of subtrees allows a <img class="formulaInl" alt="$O(\log \log n)$" src="form_13.png"/> time complexity for each access.</p>
<p>The elements are enumerated in an increasing order, but only the ones that belong to the filter as well.</p>
<p>An object of this class keeps the state of an enumeration. This means that various enumerations can be performed simultaneously provided that each of them is associated with a different iterator.</p>
<p>The path from the root of the tree until last element enumerated is composed by nodes of the <a class="el" href="classvEBTree.html" title="An implementation of DirectlyAddressedSet using a static van Emde Boas tree as data structure...">vEBTree</a>. A binary search in this path using min and max information of subtrees allows a <img class="formulaInl" alt="$O(\log \log n)$" src="form_13.png"/> time complexity for each access. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a4d9ead062206cac32596b6aeb493a018"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::Iterator </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt; *&#160;</td>
          <td class="paramname"><em>t</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>A constructor for a <a class="el" href="classvEBTree_1_1Iterator.html" title="A generic iterator on the set of elements.">Iterator</a> over a specified <a class="el" href="classvEBTree.html" title="An implementation of DirectlyAddressedSet using a static van Emde Boas tree as data structure...">vEBTree</a>. </p>
<p>Create a <a class="el" href="classvEBTree_1_1Iterator.html" title="A generic iterator on the set of elements.">Iterator</a> to look up a specified <a class="el" href="classvEBTree.html" title="An implementation of DirectlyAddressedSet using a static van Emde Boas tree as data structure...">vEBTree</a>. The <a class="el" href="classvEBTree_1_1Iterator.html" title="A generic iterator on the set of elements.">Iterator</a> enumerate all the elements in the set represented by the object passed as parameter.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>the specified tree. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6a0a5ee2f938be39b3d7a534dc8358f1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::~Iterator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The destructor. </p>

<p>Reimplemented from <a class="el" href="classDirectlyAddressedSet_1_1Iterator.html#aed6d9cffc7ce084fc3a4607ac9e7658d">DirectlyAddressedSet::Iterator</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a8ef98f7b9876bb115462163661b29df1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::flip </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a1f02546ac829b1d49e60d53f15be2b8c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::hasNext </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determine if still there is a element in the set not enumerated yet. </p>
<p>This method determine if there is a element in the set not enumerate yet. It look in all the leaf level of the tree using the information of the other levels.</p>
<p>We start the search in the word of the least enumerated element. If it has other bit 1 we return this value. If not we look in the upper level for the next non null word and so go on untill the top level where we make a serial search.</p>
<dl class="section return"><dt>Returns:</dt><dd>true if there is a element not enumerated yet, and false otherwise. </dd></dl>

<p>Implements <a class="el" href="classDirectlyAddressedSet_1_1Iterator.html#a4638912da429eea3b561a38fdf9bb380">DirectlyAddressedSet::Iterator</a>.</p>

</div>
</div>
<a class="anchor" id="aa9fac9ed87497617aa459ac4797343da"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::hasPrevious </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Checks whether the set has a previous key in the current range. </p>
<dl class="section return"><dt>Returns:</dt><dd>true if this set has more keys to enumerated in a descending order traversal. </dd></dl>

<p>Implements <a class="el" href="classDirectlyAddressedSet_1_1Iterator.html#a87f871ba25a66098b4cef38a873dae90">DirectlyAddressedSet::Iterator</a>.</p>

</div>
</div>
<a class="anchor" id="ad99580f47f78ad58fd84ab5c27f8d851"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::next </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Index of the next element in the set according to the current enumeration. </p>
<p>The next element in the current enumeration. The order is the natural order between the natural numbers.</p>
<dl class="section return"><dt>Returns:</dt><dd>the next element, if exists one; otherwise, a value greater or equal to the size of the universe. </dd></dl>

<p>Implements <a class="el" href="classDirectlyAddressedSet_1_1Iterator.html#ab3ef5a45f421b1f1b2875e60977aafc7">DirectlyAddressedSet::Iterator</a>.</p>

</div>
</div>
<a class="anchor" id="a72c114ea6d07877ea883d8d7a931fa78"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual long <a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::previous </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Enumerates the previous key in the current range. </p>
<p>This method may be called repeatedly to traverse the set in descending order, or intermixed with calls to <a class="el" href="classvEBTree_1_1Iterator.html#ad99580f47f78ad58fd84ab5c27f8d851" title="Index of the next element in the set according to the current enumeration.">next()</a> to go back and forth. (Note that alternating calls to <a class="el" href="classvEBTree_1_1Iterator.html#ad99580f47f78ad58fd84ab5c27f8d851" title="Index of the next element in the set according to the current enumeration.">next()</a> and <a class="el" href="classvEBTree_1_1Iterator.html#a72c114ea6d07877ea883d8d7a931fa78" title="Enumerates the previous key in the current range.">previous()</a> will return the same key repeatedly.)</p>
<p>An arbitrary value outside the current range is returned if there is no previous key in the current range.</p>
<dl class="section return"><dt>Returns:</dt><dd>the previous element to be enumerated, if there is one, or a value smaller than all values in the current range otherwise </dd></dl>

<p>Implements <a class="el" href="classDirectlyAddressedSet_1_1Iterator.html#a7442e802acdd3c5d5253ba1c07fe32f4">DirectlyAddressedSet::Iterator</a>.</p>

</div>
</div>
<a class="anchor" id="a26d3031d2130e28684e6ab014700ad8e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::restart </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Restart enumeration. </p>
<p>Restart the enumeration. It will lost all the current state and it will start over the enumeration.</p>
<p>Usually it is a simple call to <a class="el" href="classvEBTree_1_1Iterator.html#a3f18d015f489b36d8403af3a46311efb" title="Start enumeration.">start()</a>.</p>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classvEBTree_1_1Iterator.html#a3f18d015f489b36d8403af3a46311efb" title="Start enumeration.">start()</a> </dd></dl>

<p>Implements <a class="el" href="classDirectlyAddressedSet_1_1Iterator.html#a99e1e151841712f564fdb623db9bece2">DirectlyAddressedSet::Iterator</a>.</p>

</div>
</div>
<a class="anchor" id="a347eaec25fcf68d0e0110d249d88f724"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::restartFrom </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Restart enumeration from a specified element. </p>
<p>Restart the enumeration. it will lost all the current state and it will start over from the smalest element in the set that is bigger or equal than the specified element.</p>
<p>If the specified element is not a element of the universe a error will occur.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">the</td><td>specified element </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classDirectlyAddressedSet_1_1Iterator.html#a1421c0a751aafa1de9cd0bed72bd2bdd">DirectlyAddressedSet::Iterator</a>.</p>

</div>
</div>
<a class="anchor" id="a3f18d015f489b36d8403af3a46311efb"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::start </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Start enumeration. </p>
<p>Initailize all the variables and start a enumeration of the elements in the set.</p>
<p>The variables idx and slide are set to zero and the initial word is set to be the first non null word. </p>

</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="a8219f22e091c9743e43e210940a8490d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classvEBTree.html">vEBTree</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="af89f6729496615c735569c943cfc4568"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::cursor</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="aa3e25b2b1eeb690a7a5611141dddc732"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::ht</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>a copy of the target instance of vEBTree&lt;T&gt;::height </p>

</div>
</div>
<a class="anchor" id="adae6c9439a9fa44660059425f3c282b0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::idx</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>index of the current node in the last level </p>

</div>
</div>
<a class="anchor" id="aef7b31e0f9a5867a02ca141c9b7c5a8a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::size</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>the size of the <a class="el" href="classvEBTree.html" title="An implementation of DirectlyAddressedSet using a static van Emde Boas tree as data structure...">vEBTree</a> that is being enumerate, its a simple copy of the value t-&gt;<a class="el" href="classvEBTree_1_1Iterator.html#aef7b31e0f9a5867a02ca141c9b7c5a8a" title="the size of the vEBTree that is being enumerate, its a simple copy of the value t-&gt;size()">size()</a> </p>

</div>
</div>
<a class="anchor" id="ac8d334fe2119feb85d17472c8e2cfff5"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classvEBTree.html">vEBTree</a>&lt;T&gt;* <a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::t</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>the enclosing vEBTree&lt;T&gt;, which gives access to <a class="el" href="classvEBTree.html#a351f1100d69f7fd48d6dc906c5c8c46b" title="The node in the index i of the leaf level of the tree.">vEBTree&lt;T&gt;::treeNode</a> method </p>

</div>
</div>
<a class="anchor" id="a1c7758ec46a3f2a8f052df13c82bc905"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classvEBTree.html">vEBTree</a>&lt; T &gt;::Iterator::word_size</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>the size in bits of a word </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>datastruct/<a class="el" href="vEBTree_8h_source.html">vEBTree.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Nov 8 2012 10:35:26 for Disjoint Stable Set Problems - Formulations by Representatives and Combinatorial Solvers by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1.1
</small></address>
</body>
</html>
